package cn.wolfcode.education.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

//正式学员
@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
public class RegularStu {
    //学生状态常量
    public static final int STATUS_DROP = -2; //退学 流失
    public static final int STATUS_ABSENCE = -1; //休学 有事
    public static final int STATUS_NORMAL = 0; //正常
    public static final int STATUS_FINISH = 1; // 毕业

    //费用状态常量
    public static final int FEE_NO = 0; //费用未缴清
    public static final int FEE_YES = 1; //费用已缴清

    //性别常量
    public static final int GENDER_MALE = 0;
    public static final int GENDER_FEMALE = 1;

    //班级等级
    public static final int CLASS_BASE = 0; //基础班
    public static final int CLASS_SENIOR = 1; //大神班

    //编号
    private Long id;
    //姓名
    private String name;
    //年龄
    private Long age;
    //性别
    private int gender; //默认为男
    //地址
    private String address;
    //录入人Id
    private Employee inputEmployee;
    //录入时间
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date inputTime;
    //qq号码
    private String qq;
    //总费用
    private BigDecimal totalFee;
    //未缴费用
    private BigDecimal unPaidFee;
    //已缴费用
    private BigDecimal paidFee;
    //缴费状态
    private int feeStatus = FEE_NO;
    //付款方式
    private SystemDictionaryItem payment;
    //支付类型
    private SystemDictionaryItem paymentType;
    //入学时间
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date inClassTime;
    //入学校区
    private SystemDictionaryItem campus;
    //所在班级
    private Classgrade classgrade;
    //联系电话
    private String tel;
    //状态
    private int status = STATUS_NORMAL;
    //班级状态
    private int classStatus = CLASS_BASE;
    //身份证号码
    private Long idNum;
    //紧急联系人姓名
    private String emergencyName;
    //紧急联系人电话
    private String emergencyTel;
    //工作意向
    private String wishWork;
    //工作经历
    private String experienceWork;
    //所在学院
    private SystemDictionaryItem college;
    //升班时间
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date classPromoteDate;
}